<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
    
    <script>
        // map 接收一个函数，将原数组中的所有元素用这个函数处理后放入到新数组中返回
        let arr = ['1', '20', '-5', '3'];
        console.log(arr)
        arr = arr.map((item) => {
            return item * 2;
        });
        console.log(arr)

        // reduce 为数组中的每一个元素依次执行回调函数，不包括数组中被删除或从未被赋值的元素，接受四个参数：
        // 初始值（或者上一次回调函数的返回值），当前元素值，当前索引，调用 reduce 的数组。
        // callback （执行数组中每个值的函数，包含四个参数）
        //      1、previousValue （上一次调用回调返回的值，或者是提供的初始值（initialValue））
        //      2、currentValue （数组中当前被处理的元素）
        //      3、index （当前元素在数组中的索引）
        //      4、array （调用 reduce 的数组）
        // initialValue （作为第一次调用 callback 的第一个参数。）
        const arr = [1,20,-5,3];
        // 没有初始值：
        console.log(arr.reduce((a,b) => a + b)); // 19
        console.log(arr.reduce((a,b) => a * b)); // -300


    </script>

</body>
</html>